package com.zjsru.oneDay202210;

/**
 * @Author: likew
 * @Date: 2022/10/1
 * 重新格式化电话号码
 *
 * 输入：number = "1-23-45 6"
 * 输出："123-456"
 * 解释：数字是 "123456"
 * 步骤 1：共有超过 4 个数字，所以先取 3 个数字分为一组。第 1 个块是 "123" 。
 * 步骤 2：剩下 3 个数字，将它们放入单个含 3 个数字的块。第 2 个块是 "456" 。
 * 连接这些块后得到 "123-456" 。
 */
public class ReformatNumber {
    
    public String reformatNumber(String number) {
        String s = number.replace("-", "").replace(" ", "");
        int len = s.length();
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < len; i += 3) {
            if (sb.length() != 0) {
                sb.append("-");
            }
            if (i + 5 > len) {
                if (i + 3 >= len) {
                    sb.append(s.substring(i));
                } else {
                    sb.append(s.substring(i, i + 2)).append("-").append(s.substring(i + 2));
                }
                break;
            }
            sb.append(s.substring(i, i + 3));
        }
        return sb.toString();
    }
    
    public static void main(String[] args) {
        ReformatNumber reformatNumber = new ReformatNumber();
        String number = "123 4-567";
        System.out.println(reformatNumber.reformatNumber(number));
    }
}
